The present invention relates to data networking and more particularly to switch design.
Switches represent an important class of data networking devices. The typical switch has multiple inputs and multiple outputs. In the well-known crossbar configuration, data traffic arriving at any input port may be transferred to any output port. The output ports themselves may be buffered to better match switch output rate to interface bandwidth.
Congestion at the switch output is nonetheless a challenge. Individual interface devices couple to a particular switch output may not be capable of handling the current traffic load arriving at all the switch inputs and destined for that output. A current solution is to divide traffic into multiple priority classes. Where switch output bandwidth is scarce, available capacity is allocated based on priority.
However, there is currently no way of allocating limited switch output port bandwidth among input ports. This capability would be desirable in many applications. For example, a service provider that is using the switch as an edge network device might wish to allocate limited bandwidth among multiple customers that are physically connected to different input ports of the switch fabric.
What is need are systems and methods for allocating switch output port bandwidth both among input ports and among service classes such as priority levels.